<?php  if (!defined('BASEPATH')) exit('No direct script access allowed');

/**
 * Помощник-виджет для отрисовки сабменю
 *
 * @package CoreFramework
 * @version 1.0
 * @author Gennadiy Kozlenko
 */

/**
 * Отрисовка виджета
 * 
 * @access public
 * @param string $str
 * @return string
 */
function submenu_widget($params = array()) {
   $obj =& get_instance();
   $output = '';
   // Получаем идентификатор меню
   $name = $params['name'];
   $obj->benchmark->mark('process_submenu_(_' . $name . '_)_start');
   $id_menu = 0;
   $obj->load->model('m_table');
   $obj->m_table->set_table('menus');
   $obj->m_table->add_restriction('name', $name);
   $obj->m_table->load_results();
   if (0 < $obj->m_table->get_count()) {
      $result = $obj->m_table->next_result();
      $id_menu = $result['id_menu'];
   }
   // Получаем идентификатор текущего элемента меню
   $obj->load->model('m_content');
   $id_content = null;
   if (isset($params['id'])) {
      $id_content = (int) $params['id'];
   }
   if (null !== $id_content) {
      // Получаем все дочерние элементы первого уровня текущего элемента меню
      $obj->m_table->set_table('contents');
      $obj->m_table->add_restriction('id_menu', $id_menu);
      $obj->m_table->add_restriction('id_parent', $id_content);
      $obj->m_table->add_restriction('status', 'active');
      $obj->m_table->add_sort('position');
      $obj->m_table->load_results();
      if (0 < $obj->m_table->get_count()) {
         $obj->load->helper('content');
         $items = array();
         foreach ($obj->m_table->get_results() as $item) {
            $item['link'] = get_url($item);
            array_push($items, $item);
         }
         $data = array(
            'items'  => $items
         );
         $output = $obj->parser->parse('widgets/submenu/' . $name . '.html', $data, true);
      }
   }
   
   $obj->benchmark->mark('process_submenu_(_' . $name . '_)_end');
   return $output;
} // end submenu_widget
